Context Accounts
State-changing Instructions
Cancel
Write account: the sender of the stream who can cancel it.
pub sender: Signer<'info>,
Create if needed account: the deposited token ATA owned by the sender.
pub sender_ata: Box<InterfaceAccount<'info, TokenAccount>>,
Read account: the mint account of the deposited token.
pub deposited_token_mint: Box<InterfaceAccount<'info, Mint>>,
Write account: the stream data account storing stream details.
pub stream_data: Box<Account<'info, StreamData>>,
Write account: the deposited token ATA owned by the stream data account.
pub stream_data_ata: Box<InterfaceAccount<'info, TokenAccount>>,
Read account: the mint account for the stream NFT.
pub stream_nft_mint: Box<InterfaceAccount<'info, Mint>>,
Program account: the Associated Token program.
pub associated_token_program: Program<'info, AssociatedToken>,
Program account: the System program.
pub deposited_token_program: Interface<'info, TokenInterface>,
Program account: the Token program of the deposited token.
pub system_program: Program<'info, System>,
CollectFees
Write account: the account authorized to collect fees from the treasury.
pub fee_collector: Signer<'info>,
Write account: the address that will receive the collected fees.
pub fee_recipient: UncheckedAccount<'info>,
Write account: the treasury account that holds the fees.
pub treasury: Box<Account<'info, Treasury>>,
CreateWithTimestamps
Write account: the creator and funder of the stream.
pub creator: Signer<'info>,
Write account: the creator's ATA for the deposit token.
pub creator_ata: Box<InterfaceAccount<'info, TokenAccount>>,
Read account: the recipient of the stream.
pub recipient: UncheckedAccount<'info>,
Read account: the sender of the stream.
pub sender: UncheckedAccount<'info>,
Write account: the NFT collection data storing the total supply.
pub nft_collection_data: Box<Account<'info, NftCollectionData>>,
Write account: the master edition account for the NFT collection.
pub nft_collection_master_edition: UncheckedAccount<'info>,
Write account: the metadata account for the NFT collection.
pub nft_collection_metadata: UncheckedAccount<'info>,
Read account: the mint account for the NFT collection.
pub nft_collection_mint: Box<InterfaceAccount<'info, Mint>>,
Read account: the mint account for the deposit token.
pub deposit_token_mint: Box<InterfaceAccount<'info, Mint>>,
Create account: the mint account for the stream NFT.
pub stream_nft_mint: Box<InterfaceAccount<'info, Mint>>,
Create account: the ATA for the stream NFT owned by the recipient.
pub recipient_stream_nft_ata: Box<InterfaceAccount<'info, TokenAccount>>,
Create account: the account that will store the stream data.
pub stream_data: Box<Account<'info, StreamData>>,
Create account: the ATA for deposit tokens owned by stream data account.
pub stream_data_ata: Box<InterfaceAccount<'info, TokenAccount>>,
Create account: the master edition account for the stream NFT.
pub stream_nft_master_edition: UncheckedAccount<'info>,
Create account: the metadata account for the stream NFT.
pub stream_nft_metadata: UncheckedAccount<'info>,
Program account: the Associated Token program.
pub associated_token_program: Program<'info, AssociatedToken>,
Program account: the Token program of the deposit token.
pub deposit_token_program: Interface<'info, TokenInterface>,
Program account: the Token program of the stream NFT.
pub nft_token_program: Interface<'info, TokenInterface>,
Program account: the Token Metadata program.
pub token_metadata_program: Program<'info, Metadata>,
Program account: the System program.
pub system_program: Program<'info, System>,
Sysvar account: Rent.
pub rent: Sysvar<'info, Rent>,
Initialize
Write account: the initializer of the program.
pub initializer: Signer<'info>,
Create account: the treasury account that will hold the fees.
pub treasury: Box<Account<'info, Treasury>>,
Create account: the NFT collection data account storing collection metadata.
pub nft_collection_data: Box<Account<'info, NftCollectionData>>,
Create account: the master edition account for the NFT collection.
pub nft_collection_master_edition: UncheckedAccount<'info>,
Create account: the metadata account for the NFT collection.
pub nft_collection_metadata: UncheckedAccount<'info>,
Create account: the mint account for the NFT collection.
pub nft_collection_mint: Box<InterfaceAccount<'info, Mint>>,
Create account: the ATA for the NFT collection owned by treasury.
pub nft_collection_ata: Box<InterfaceAccount<'info, TokenAccount>>,
Program account: the Associated Token program.
pub associated_token_program: Program<'info, AssociatedToken>,
Program account: the Token program of the collection NFT.
pub nft_token_program: Interface<'info, TokenInterface>,
Program account: the Token Metadata program.
pub token_metadata_program: Program<'info, Metadata>,
Sysvar account: Rent.
pub rent: Sysvar<'info, Rent>,
Program account: the System program.
pub system_program: Program<'info, System>,
Renounce
Write account: the sender of the stream.
pub sender: Signer<'info>,
Write account: the stream data account storing stream details.
pub stream_data: Box<Account<'info, StreamData>>,
Read account: the mint account for the stream NFT.
pub stream_nft_mint: Box<InterfaceAccount<'info, Mint>>,
Withdraw
Write account: the signer of the withdrawal who pays the withdrawal fee.
pub signer: Signer<'info>,
Read account: the recipient of the stream who owns the stream NFT.
pub stream_recipient: UncheckedAccount<'info>,
Read account: the account that will receive the withdrawn tokens.
pub withdrawal_recipient: UncheckedAccount<'info>,
Create if needed account: the ATA for deposited tokens owned by withdrawal recipient.
pub withdrawal_recipient_ata: Box<InterfaceAccount<'info, TokenAccount>>,
Write account: the treasury account that receives the withdrawal fee.
pub treasury: Box<Account<'info, Treasury>>,
Read account: the mint account for the deposited token.
pub deposited_token_mint: Box<InterfaceAccount<'info, Mint>>,
Read account: the ATA for the stream NFT owned by recipient.
pub recipient_stream_nft_ata: Box<InterfaceAccount<'info, TokenAccount>>,
Write account: the account storing the stream data.
pub stream_data: Box<Account<'info, StreamData>>,
Write account: the ATA for deposited tokens owned by stream data.
pub stream_data_ata: Box<InterfaceAccount<'info, TokenAccount>>,
Read account: the mint account for the stream NFT.
pub stream_nft_mint: Box<InterfaceAccount<'info, Mint>>,
Program account: the Associated Token program.
pub associated_token_program: Program<'info, AssociatedToken>,
Read account: The Chainlink program used to retrieve on-chain price feeds.
pub chainlink_program: AccountInfo<'info>,
Read account: The account providing the SOL/USD price feed data.
pub chainlink_sol_usd_feed: AccountInfo<'info>,
Program account: the Token program of the deposited token.
pub deposited_token_program: Interface<'info, TokenInterface>,
Program account: the Token program of the stream NFT.
pub nft_token_program: Interface<'info, TokenInterface>,
Program account: the System program.
pub system_program: Program<'info, System>,
Read-only Instructions
StreamExists
Read account: the mint account for the stream NFT.
pub stream_nft_mint: UncheckedAccount<'info>,
StreamView
Read account: the account storing stream details.
pub stream_data: Box<Account<'info, StreamData>>,
Read account: the mint account for the stream NFT.
pub stream_nft_mint: Box<InterfaceAccount<'info, Mint>>,
TreasuryView
Read account: the account storing the treasury details.
pub treasury: Box<Account<'info, Treasury>>,
WithdrawalFeeInLamports
Read account: the treasury account that receives the withdrawal fee.
pub treasury: Box<Account<'info, Treasury>>,
Read account: The Chainlink program used to retrieve on-chain price feeds.
pub chainlink_program: AccountInfo<'info>,
Read account: The account providing the SOL/USD price feed data.
pub chainlink_sol_usd_feed: AccountInfo<'info>,